Sampling is a well known process in which samples are selected from a sampling domain to produce output information. For example, a graphics application may select a subset of image values from an original input image to produce an output image. In many scenarios, a sampling technique attempts to select samples in such a manner that the output information has desirable properties, such as desirable noise-related properties.
One technique for selecting samples is the dart-throwing technique described in Robert L. Cook, “Stochastic Sampling in Computer Graphics,” ACM Transactions on Graphics, Vol. 5, Issue 1, 1986, pp. 51-72. This technique randomly selects a candidate sample from a sampling domain and then determines whether this sample is at least a minimum distance away from all existing (i.e., previously selected) samples in the output information. The technique accepts the candidate sample if it satisfies the minimum distance constraint. If the constraint is not satisfied, the technique investigates another randomly-selected candidate sample. By virtue of minimum distance constraint, the dart-throwing technique produces output information that exhibits a favorable Poisson disk distribution. In the context of a graphics application, a Poisson distribution exhibits a blue noise power spectrum, replacing low frequency aliasing with high frequency noise, which corresponds to a less annoying artifact.
While useful, known Poisson-related sampling techniques have various limitations. For example, Poisson sampling techniques treat all samples in a sampling domain in the same manner; this yields output information that includes a single class of samples. Yet many real-world phenomena exhibit a mix of different types of features that can be conceptualized as different classes of sampling domains. Known Poisson-related sampling techniques do not address the challenges associated with processing this type of multi-class information.